$(document).ready(init_paciente)

/*funcion que se ejecuta cuando carga de la pagina*/
function init_paciente(){
    
    //cargar_paciente();
    $("#nuevaPacienteBtn").button({
        icons: {
            primary: 'ui-icon-plusthick'
        }
    });
    
    

    $("#buscarBtn").button({
        icons: {
            primary: 'ui-icon-search'
        },
        text: false
    });

    $("#clearBtn").button({
        icons: {
            primary: 'ui-icon-arrowthick-1-w'
        },
        text: false
    });
                    
    $("#ayudaBtn").button({
        icons: {
            primary: 'ui-icon-help'
        },
        text: false
    });
   
    $("#id_tipo_ide").load("/salus/AdministrarServlet", {
        op:"-5"
    });
    $("#id_entidad").load("/salus/AdministrarServlet", {
        op:"-11"
    });
    
    $("#id_depto").load("/salus/AdministrarServlet", {
        op:"-1"
    }).change(mostrar_municipios);
    
    $("#id_mupio").load("/salus/AdministrarServlet", {
        op:"-3"
    });
    $("#idsexo").load("/salus/AdministrarServlet", {
        op:"-36"
    });    
       
    $("#id_tipo_poblacion").load("/salus/AdministrarServlet", {
        op:"-15"
    }).change(mostrar_TipoPoblacionEspecial);    
    
    $("#id_poblacion_especial").load("/salus/AdministrarServlet", {
        op:"-44"
    });
    
    $("#id_nivel").load("/salus/AdministrarServlet", {
        op:"-16"
    });
     
    $("#id_tipoafiliacion").load("/salus/AdministrarServlet", {
        op:"-38"
    });
   
    $("#tabs_paciente").tabs();


    $("#nuevaPacienteBtn").click(function(){
        
        clear_form_elements($("#formPaciente"));
        
        mostrar_campos({
            id:"",
            id_tipo_ide:"",
            identificacion:"",
            nombre1:"",
            nombre2:"",
            apellido1:"",
            apellido2:"",
            fecha_nac:"",
            idsexo:"",
            id_depto:"",
            id_mupio:"",
            zona:"",
            fecha_eps:"",
            id_tipo_poblacion:"",
            id_nivel:"",
            direccion:"",
            telefono:"",
            id_entidad:"",
            estp:"",
            op:"nuevo"
        });

        formularioPaciente();
        
    })

    $("#formPaciente").validate({
        rules:{            
            identificacion:{
                required:true
            },
            nombre1:{
                required:true
            },
            apellido1:{
                required:true
            },
            numero_registro:{
                required:true
            },
            idsexo:{
                required:true
            },
            fecha_nac:{
                required:true
            },
            fecha_eps:{
                required:true
            }
        }
    })

    $("#buscarBtn").click(buscar_paciente);
    $("#clearBtn").click(limpiarBusqueda);

    $("#fecha_nac").datepicker($.datepicker.regional['es']);
    $("#fecha_eps").datepicker($.datepicker.regional['es']);
    
    /*validacion buscador*/
    
    $("#buscarCod").keyup(function(){
        $("#buscarDes").val("");
        $("#buscarDes1").val("");
    });
    
    $("#buscarDes").keyup(function(){
        $("#buscarCod").val("");        
    });
    
    $("#buscarDes1").keyup(function(){
        $("#buscarCod").val("");        
    });
    
    $("#buscarCod").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_paciente()
        }
    })
        
    $("#buscarDes").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_paciente()
        }
    })
    $("#buscarDes1").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_paciente()
        }
    })
        
    //$("#identificacion").blur(validarNumeroIdentificacion)    
    /*AYUDA*/
    $('#ayudaBtn').qtip({
        content: '<b style="color:red">*</b> Para editar un paciente, haga doble click sobre el registro seleccionado<br /><b style="color:red">*</b> Para buscar un paciente utilice los campos del pie de cada columna',
        show: 'mouseover',
        hide: 'mouseout',
        style: {
            name: 'cream', 
            border: {
                width: 3,
                radius: 8                                         
            },
            width: 200,
            tip: { // Now an object instead of a string
                corner: 'topRight', // We declare our corner within the object using the corner sub-option
                color: 'orange',
                size: {
                    x: 20, // Be careful that the x and y values refer to coordinates on screen, not height or width.
                    y : 8 // Depending on which corner your tooltip is at, x and y could mean either height or width!
                }
            }
        },
        position: {
            corner: {
                target: 'bottomLeft',
                tooltip: 'topRight'
            },
            container: $('div.tooltips')                          
        }
    })
    
    $("#estp").change(function(){
        if(this.checked){
            $("#vestp").val('On');
        }else{
            $("#vestp").val('Off');
        }
    })
    

}


/*Trae lista de municipios dependiendo del id de departamento*/
function mostrar_municipios(){
    $("#id_mupio").load("/salus/AdministrarServlet", {
        op:"-2",
        iddepto:$("#id_depto").val()
    });
}

/*Trae lista de tipoblacion especial dependiendo del id de tipo poblacion*/
function mostrar_TipoPoblacionEspecial(){
    $("#id_poblacion_especial").load("/salus/AdministrarServlet", {
        op:"-45",
        id_tipo_poblacion:$("#id_tipo_poblacion").val()
    });
}


/*Muestra el dialogo para capturar los datos de la tabla*/
function formularioPaciente(){
    $("#paciente-form").dialog({
        height: 600,
        width: 800,
        modal: true,
        title:"Paciente",
        buttons:{
            "Cancelar":function(){
                $(this).dialog("close")
            },
            "Guardar":
                                                              
            function(){
                if($("#op").val()=='nuevo'){
                    validarNumeroIdentificacion()
                }else{
                    guardar_paciente()
                }                              
                                
            }
                                
        }
    });
}

/*Guarda los datos de la tabla*/
function guardar_paciente(){
    if ($("#formPaciente").valid()){
        var form = $("#formPaciente");
        var op=$("#op").val()+"_paciente";
        var formLocal={
            id:$("#id").val(),
            identificacion:$("#identificacion").val(),
            nombre:$("#nombre1").val()+' '+$("#nombre2").val()+' '+$("#apellido1").val()+' '+$("#apellido2").val(),
            estp:$("#estp").val()
        };
        $.ajax({
            type:'POST',
            url:'/salus/AdministrarSetServlet',
            data:form.serialize()+"&op="+op,
            success:function(data) {
                var resp = data.split("_");
                if(resp[0] == "editar" ){                
                    edit_paciente(formLocal)
                    $("#paciente-form").dialog("close")
                }else {                
                    add_paciente(formLocal)
                    $("#paciente-form").dialog("close")
                }
            }
        });
    }
}

/*Actualiza los datos en la grilla, despues de actualizar los datos*/
function edit_paciente(paciente){
    $("#paciente-"+paciente.id+"-identificacion").text(paciente.identificacion)
    $("#paciente-"+paciente.id+"-nombre").text(paciente.nombre)
}

/*Crea dinamicamente la grilla, dependiendo de la respuesta de la base de datos in(json)*/
function add_paciente(paciente){
    var tbody=$("#tabla-paciente-body")
    var tr=$("<tr/>").attr("id","paciente-"+paciente.id).appendTo(tbody);
    $("<td/>").appendTo(tr).append(paciente.identificacion).attr("id","paciente-"+paciente.id+"-identificacion");
    $("<td/>").appendTo(tr).append(paciente.nombre).attr("id","paciente-"+paciente.id+"-nombre");
    var aBorrar=$("<a/>").text("Borrar").addClass("borrar").attr("href","#").click(function(){
        if (confirm("¿Desea borrar este asignatura?")){
            $.post("set_data.php",{
                op:"borrar_asignatura",
                id:paciente.id
            },function(data){
                var resp=JSON.parse(data);
                if (resp.estado=="OK"){
                    $("#paciente-"+paciente.id).remove();
                }
            }
            )
        }
        return false;
    })
    var aEditar=$("<a/>").text("Editar").addClass("editar").attr("href","#").click(function(){
        $.getJSON("/salus/AdministrarEditServlet", {
            op:"7",
            id:paciente.id
        }, function(data){            
            data.op="editar";
            mostrar_campos(data);
            formularioPaciente();
        })
        return false;
    })

    $("<td/>").append(aEditar).append(aBorrar).appendTo(tr)
}

function editar(id){
    $.getJSON("/salus/AdministrarEditServlet", {
        op:"7",
        id:id
    }, function(data){            
        data.op="editar";
        mostrar_campos(data);
        formularioPaciente();
    })
}

/*Llena el formulario de edicion con los datos retornados via json*/
function mostrar_campos(paciente){
    if(paciente.id!=0){
        
        $("#estp").attr("checked", false);
        $("#vestp").val("Off")
      
        $("#op").val(paciente.op)
        $("#id").val(paciente.id)
        $("#id_tipo_ide").val(paciente.id_tipo_ide)
        $("#identificacion").val(paciente.identificacion)
        $("#nombre1").val(paciente.nombre1)
        $("#nombre2").val(paciente.nombre2)
        $("#apellido1").val(paciente.apellido1)
        $("#apellido2").val(paciente.apellido2)
        var fec1 = paciente.fecha_nac.split('-')
        var fec2 = paciente.fecha_eps.split('-')
        if(fec1!="null"){
            $("#fecha_nac").val(fec1[2]+'/'+fec1[1]+'/'+fec1[0])       
        }
        if(fec2!="null"){
            $("#fecha_eps").val(fec2[2]+'/'+fec2[1]+'/'+fec2[0])       
        }
        $("#idsexo").val(paciente.idsexo)
        $("#id_depto").val(paciente.id_depto)
        $("#id_mupio").val(paciente.id_mupio)
        $("#zona").val(paciente.zona)
        $("#id_tipo_poblacion").val(paciente.id_tipo_poblacion)
        $("#id_nivel").val(paciente.id_nivel)
        $("#direccion").val(paciente.direccion)
        $("#telefono").val(paciente.telefono)
        $("#id_entidad").val(paciente.id_entidad)
        
       
        
        if(paciente.estp=="true"){
            $("#estp").attr("checked", true);
            $("#vestp").val("On")
        }
        
    }else{
        $("#op").val(paciente.op)
    }

    $("label.error").remove()
}

/*Trae los datos de la base de datos en un objeto json*/
function cargar_paciente(){
    $.getJSON("/salus/AdministrarServlet", {
        op:"7",
        cod:$("#buscarCod").val(),
        des:$("#buscarDes").val(),
        des1:$("#buscarDes1").val()
    }, function(data){
        $.each(data, function(i,item){
            add_paciente(item)
        })
        $("#tabla-paciente").addClass("tablesorter").tablesorter({
            widthFixed: true,
            widgets: ['zebra']
        }).tablesorterPager({
            container: $("#pager")
        })
    })
}


/*gestiona la busqueda de datos en la grilla, por codigo y descripcion*/
function buscar_paciente(){

    if($("#buscarCod").val()==""&&$("#buscarDes").val()==""&&$("#buscarDes1").val()==""){
        alert('Debe digitar un dato de busqueda')
    }else{
        
        if(($("#buscarDes").val()==""&&!$("#buscarDes1").val()=="")||(!$("#buscarDes").val()==""&&$("#buscarDes1").val()=="")){
            alert('Debe ingresar primer nombre y primer apellido')
            return false;
        }
        
        $("#tabla-paciente-body tr").remove();
        $("#tabla-paciente colgroup").remove();
        $.getJSON("/salus/AdministrarServlet", {
            op:"7",
            cod:$("#buscarCod").val(),
            des:$("#buscarDes").val(),
            des1:$("#buscarDes1").val()
        }, function(data){
        
            if(data.length>0){
                $.each(eval(data), function(i,item){
                    add_paciente(item)
                })
                $("#tabla-paciente").addClass("tablesorter").tablesorter({
                    widthFixed: true,
                    widgets: ['zebra']
                }).tablesorterPager({
                    container: $("#pager")
                })
            }else{
                alert('No se encontraron registros');
            } 
        
        
        })
    }
}


/*clarea los datos del formulario de busqueda*/
function limpiarBusqueda(){
    $("#buscarCod").val("");
    $("#buscarDes").val("");
    $("#buscarDes1").val("");
}


function validarNumeroIdentificacion(){
    var numero = $("#identificacion").val();
    
    jQuery.ajax({
        type: "POST",
        url: "/salus/ValidarFormularioServlet",
        data: "op=2&num="+numero,
        dataType: 'json',
        success: function(msg){
            
            if(msg.error=='1'){
                $("#error_num").html("<b style='color:orange'>El documento ya existe</b>");
                $("#identificacion").val("")
                $("#identificacion").focus();
            }else{
                $("#error_num").html("");
                guardar_paciente()
            }
        }

    });
}

function clear_form_elements(ele) {

    $(ele).find(':input').each(function() {
        switch(this.type) {
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'file':
            case 'textarea':
                $(this).val('');
                break;
            case 'checkbox':
            case 'radio':
                this.checked = false;
        }
    });

}